Consiste à entraîner des modèles informatiques à effectuer des tâches sans avoir été explicitement programmés pour les accomplir
Les modèles peuvent s’améliorer au fil du temps en apprenant à partir de données
Exemple : Traduction automatique Reconnaissance vocale…
Différence Stat / Machine learning
décrire et comprendre les phénomènes à partir de données
hypothetico-déductive (part d’hypothèses et utilise des tests statistiques pour les vérifier)
données souvent de taille limitée et structurées
modèles simples et faciles à comprendre
prédire les résultats futurs à partir de données passées
inductive (part de données et essaie de déduire les règles sous-jacentes)
peut être utilisé avec des données de grande taille et non structurées
modèles complexes et difficiles à interpréter (réseaux de neurones, arbres de décision)
Apprentissage supervisé
modèle est entraîné sur un jeu de données annotées
Le jeu de données contient des exemples d’entrée et de sortie souhaités
L’objectif: généraliser apprentissage à partir de ces exemples pour prédire la sortie correcte pour de nouvelles entrées
Apprentissage supervisé
\[\hat{y} = f(x, \theta)\]
où \(x\) est l’entrée, \(\theta\) sont les paramètres du modèle et \(\hat{y}\) est la valeur prédite par le modèle pour l’entrée \(x\).
Objectifs : Trouver les valeurs optimales de \(\theta\) qui minimisent l’erreur entre les valeurs prédites et valeurs réelles.
Fonction de coût avec optimisation
Apprentissage non supervisé
Apprentissage non supervisé
Découvrir une structure au sein d’un ensemble d’individus caractérisés par des covariables X
Label est inconnu
Apprentissage non supervisé
\[\hat{y} = f(x, \theta)\]
où \(x\) est l’entrée, \(\theta\) sont les paramètres du modèle et \(\hat{y}\) est la valeur prédite par le modèle pour l’entrée \(x\).
Objectifs : trouver des structures ou des patterns dans les données qui peuvent être utilisés pour effectuer des tâches utiles
Les paramètres du modèle sont mis à jour en utilisant une fonction de coût et une méthode d’optimisation afin de trouver des structures ou des patterns dans les données
Supervisé / Non supervisé
Supervisé / Non supervisé
Apprentissage Actif
Apprentissage par renforcement
Transfer learning
Entrainement d’un modèle
Exemple sur un regression linéaire :
\[Y=X\cdot\theta + \epsilon\]
Solution dans le cadre d’une régression linéaire
On cherche \(\hat{\theta} = \binom{\hat{a}}{\hat{b}}\) où \(\hat{y} = \hat{a}\cdot x+\hat{b}\) pour que \(\hat{y}\) soit le plus proche de \(y\)
Les données sont fausses ?
Les données sont fausses ?
Comment on fait pour entrainer :
On trace une ligne, on mesure la qualité de la ligne tracé, on modifie la ligne pour améliorer ça qualité et on répète
Fonctions de coût
Fonction a minimiser pour trouver la meilleure solution
p2<-BDD %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+geom_smooth( method = lm, formula = y ~ x, se =FALSE)p2
Entrainement d’un modèle de régression linéaire avec effet quadratique
fit2 <-lm(y ~poly(x,3), data = BDD)summary(fit2)
Call:
lm(formula = y ~ poly(x, 3), data = BDD)
Residuals:
Min 1Q Median 3Q Max
-11.2091 -2.9193 0.2203 3.1248 14.1816
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 53.202 0.469 113.44 <2e-16 ***
poly(x, 3)1 102.443 4.690 21.84 <2e-16 ***
poly(x, 3)2 55.606 4.690 11.86 <2e-16 ***
poly(x, 3)3 56.667 4.690 12.08 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 4.69 on 96 degrees of freedom
Multiple R-squared: 0.8883, Adjusted R-squared: 0.8848
F-statistic: 254.6 on 3 and 96 DF, p-value: < 2.2e-16
Calcul de la MSE
y_pred <-predict(fit2, BDD)
mse <-mean((BDD$y - y_pred)^2)print(mse)
[1] 21.1143
p2<-BDD %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+geom_smooth( method = lm, formula = y ~poly(x,3), se =FALSE)p2
p1<-BDD2 %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+geom_smooth( method = lm, formula = y ~poly(x,1), se =FALSE)+ggtitle("y ~ x")p2<-BDD2 %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+geom_smooth( method = lm, formula = y ~poly(x,2), se =FALSE)+ggtitle("y ~ poly(x,2)")p3<-BDD2 %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+ggtitle("y ~ poly(x,3)")+geom_smooth( method = lm, formula = y ~poly(x,3), se =FALSE)p4<-BDD2 %>%ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+geom_smooth( method = lm, formula = y ~poly(x,4), se =FALSE)+ggtitle("y ~ poly(x,4)")grid.arrange(p1, p2, p3, p4, nrow =2)
Classification binaire
\[y_i \in {0, 1}\]
\[\hat{y} = f(X)\]
Fonction de seuil nécessaire pour revenir sur 0,1
ex : \(\hat{y} \geq 0.5\) classe 1 et \(\hat{y} < 0.5\) classe 0
Comment on fait pour entrainer :
On trace une ligne, on mesure la qualité de la ligne tracé, on modifie la ligne pour améliorer ça qualité et on répète